import Vue from 'vue'
import Cookies from 'js-cookie'
import moment from 'moment'
import VueLazyload from 'vue-lazyload'

//
import 'normalize.css/normalize.css' // a modern alternative to CSS resets
import '@/styles/element-ui.scss'
// import '@/styles/element/index.scss'
import '@/assets/emicons/style.scss'
// Custom theme you just created
// import '../assets/styles/element-ui-theme/theme/index.css';

// import '@/assets/umbe/index.scss' // umbe scss
import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'
//
import Element from 'element-ui'
import Umbe from '@/components/umbe'

import './permission' // permission control
import './utils/error-log' // error log
// import Api from '@/api'
import BaseModule from '@/common/base'
import EventBus from '@/utils/eventBus'
import '@/filters' // global filters
// import * as filters from './filters' // global filters
// import permission from '@/directive/permission/index.js' // 权限判断指令
// Vue.use(permission)
// import clipboard from '@/directive/clipboard/index.js' // 权限判断指令
// Vue.use(clipboard)
import '@/directive' // 字母数字下换线

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online! ! !
 */

import { mockXHR } from '../mock'
if (process.env.NODE_ENV !== 'production') {
  mockXHR()
}
// Vue.use(Storage)
Vue.use(VueLazyload)
import Highlight from '@/components/Highlight'
Vue.use(Highlight)
Vue.use(Umbe)
Vue.use(Element, {
  size: Cookies.get('size') || 'medium' // set element-ui default size
  // locale: enLang // 如果使用中文，无需设置，请删除
})
// Vue.use(Api)
Vue.use(BaseModule)
// register global utility filters
// Object.keys(filters).forEach(key => {
//   Vue.filter(key, filters[key])
// })
// import 'moment/locale/zh-cn'
// moment.locale('zh-CN')
Vue.prototype.$moment = moment
Vue.prototype.$eventBus = EventBus
Vue.config.productionTip = false
new Vue({
  el: '#app',
  router,
  store,
  methods: {
    eventBuslane(params) {
      var busInstance = new Vue()
      busInstance.$emit('busparams', params)
    }
  },
  render: h => h(App)
})
